home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-01-29 | 39.9 KB | 1,084 lines |
- Newsgroups: comp.sources.misc
- From: dvadura@plg.waterloo.edu (Dennis Vadura)
- Subject: v27i102: dmake - dmake Version 3.8, Part01/41
- Message-ID: <1992Jan28.030857.6532@sparky.imd.sterling.com>
- X-Md4-Signature: a495ba7dbb7c50a07b5af938887db2a3
- Date: Tue, 28 Jan 1992 03:08:57 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: dvadura@plg.waterloo.edu (Dennis Vadura)
- Posting-number: Volume 27, Issue 102
- Archive-name: dmake/part01
- Environment: Atari-ST, Coherent, Mac, MSDOS, OS/2, UNIX
- Supersedes: dmake: Volume 19, Issue 22-58
-
- ---- Cut Here and feed the following to sh ----
- # This is a shell archive (produced by shar 3.49)
- # To extract the files from this archive, save it to a file, remove
- # everything above the "!/bin/sh" line above, and type "sh file_name".
- #
- # made 01/27/1992 22:31 UTC by dvadura@plg
- # Source directory /u2/dvadura/src/generic/dmake/src
- #
- # existing files will NOT be overwritten unless -c is specified
- #
- # This is part 1 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- #
- # This shar contains:
- # length mode name
- # ------ ---------- ------------------------------------------
- # 8714 -rw-r----- dmake/_install
- # 2297 -rw-r----- dmake/alloc.h
- # 1762 -rw-r----- dmake/basename.c
- # 14085 -rw-r----- dmake/dag.c
- # 2705 -rw-r----- dmake/db.h
- # 460 -rw-r----- dmake/dbug/README
- # 1955 -rw-r----- dmake/dbug/dbug.mk
- # 135 -rw-r----- dmake/dbug/dbug/README
- # 44504 -rw-r----- dmake/dbug/dbug/dbug.c
- # 6259 -rw-r----- dmake/dbug/dbug/dbug.h
- # 22625 -rw-r----- dmake/dbug/dbug/dbug.uue
- # 106 -rw-r----- dmake/dbug/getwd.c
- # 1365 -rw-r----- dmake/dbug/malloc/Makefile
- # 369 -rw-r----- dmake/dbug/malloc/_changes
- # 4758 -rw-r----- dmake/dbug/malloc/_readme
- # 1572 -rw-r----- dmake/dbug/malloc/calloc.c
- # 2719 -rw-r----- dmake/dbug/malloc/debug.h
- # 3270 -rw-r----- dmake/dbug/malloc/dump.c
- # 4604 -rw-r----- dmake/dbug/malloc/free.c
- # 2113 -rw-r----- dmake/dbug/malloc/m_init.c
- # 2064 -rw-r----- dmake/dbug/malloc/m_perror.c
- # 6712 -rw-r----- dmake/dbug/malloc/malloc.3
- # 12856 -rw-r----- dmake/dbug/malloc/malloc.c
- # 2578 -rw-r----- dmake/dbug/malloc/malloc.h
- # 2372 -rw-r----- dmake/dbug/malloc/mallopt.c
- # 3596 -rw-r----- dmake/dbug/malloc/memory.c
- # 6393 -rw-r----- dmake/dbug/malloc/mlc_chk.c
- # 3448 -rw-r----- dmake/dbug/malloc/mlc_chn.c
- # 2 -rw-r----- dmake/dbug/malloc/patchlevel
- # 4750 -rw-r----- dmake/dbug/malloc/realloc.c
- # 9473 -rw-r----- dmake/dbug/malloc/string.c
- # 20192 -rw-r----- dmake/dbug/malloc/testmem.c
- # 3971 -rw-r----- dmake/dbug/malloc/testmlc.c
- # 2807 -rw-r----- dmake/dbug/malloc/tostring.c
- # 582 -rw-r----- dmake/dbug/malloc/tostring.h
- # 20915 -rw-r----- dmake/dmake.c
- # 8214 -rw-r----- dmake/dmake.h
- # 5875 -rw-r----- dmake/dmdump.c
- # 6772 -rw-r----- dmake/dmstring.c
- # 25463 -rw-r----- dmake/expand.c
- # 2216 -rw-r----- dmake/extern.h
- # 8705 -rw-r----- dmake/function.c
- # 14416 -rw-r----- dmake/getinp.c
- # 2337 -rw-r----- dmake/hash.c
- # 5686 -rw-r----- dmake/imacs.c
- # 24141 -rw-r----- dmake/infer.c
- # 1822 -rw-r----- dmake/itypes.h
- # 1950 -rw-r----- dmake/mac/arlib.c
- # 2850 -rw-r----- dmake/mac/bogus.c
- # 2976 -rw-r----- dmake/mac/config.h
- # 1234 -rw-r----- dmake/mac/config.mk
- # 1787 -rw-r----- dmake/mac/dirbrk.c
- # 8195 -rw-r----- dmake/mac/directry.c
- # 3778 -rw-r----- dmake/mac/dompwmak
- # 6935 -rw-r----- dmake/mac/environ.c
- # 3810 -rw-r----- dmake/mac/eold.c
- # 1780 -rw-r----- dmake/mac/main.c
- # 3119 -rw-r----- dmake/mac/make.sh
- # 5509 -rw-r----- dmake/mac/public.h
- # 1658 -rw-r----- dmake/mac/rmprq.c
- # 1989 -rw-r----- dmake/mac/ruletab.c
- # 403 -rw-r----- dmake/mac/startup.h
- # 3508 -rw-r----- dmake/mac/startup.mk
- # 415 -rw-r----- dmake/mac/sysintf.h
- # 2283 -rw-r----- dmake/mac/tempnam.c
- # 3703 -rw-r----- dmake/mac/tomacfil.c
- # 4782 -rw-r----- dmake/macparse.c
- # 5188 -rw-r----- dmake/make.bat
- # 28699 -rw-r----- dmake/make.c
- # 1310 -rw-r----- dmake/make.cmd
- # 12374 -rw-r----- dmake/makefile.mk
- # 3491 -rw-r----- dmake/makefile
- # 228 -rw-r----- dmake/man/README
- # 119471 -rw-r----- dmake/man/dmake.nc
- # 99797 -rw-r----- dmake/man/dmake.tf
- # 76950 -rw-r----- dmake/man/dmake.uue
- # 1994 -rw-r----- dmake/msdos/_chdir.c
- # 1955 -rw-r----- dmake/msdos/arlib.c
- # 2009 -rw-r----- dmake/msdos/bccdos/config.h
- # 1400 -rw-r----- dmake/msdos/bccdos/config.mk
- # 17 -rw-r----- dmake/msdos/bccdos/lib.rsp
- # 17 -rw-r----- dmake/msdos/bccdos/libswp.rsp
- # 3397 -rw-r----- dmake/msdos/bccdos/mk.bat
- # 3570 -rw-r----- dmake/msdos/bccdos/mkswp.bat
- # 635 -rw-r----- dmake/msdos/bccdos/obj.rsp
- # 673 -rw-r----- dmake/msdos/bccdos/objswp.rsp
- # 5547 -rw-r----- dmake/msdos/bccdos/public.h
- # 3831 -rw-r----- dmake/msdos/bccdos/startup.mk
- # 1724 -rw-r----- dmake/msdos/bccdos/tempnam.c
- # 767 -rw-r----- dmake/msdos/bccdos/utime.c
- # 1821 -rw-r----- dmake/msdos/config.mk
- # 1785 -rw-r----- dmake/msdos/dirbrk.c
- # 1086 -rw-r----- dmake/msdos/dirlib.h
- # 37235 -rw-r----- dmake/msdos/exec.asm
- # 351 -rw-r----- dmake/msdos/exec.h
- # 3671 -rw-r----- dmake/msdos/exec.uue
- # 2140 -rw-r----- dmake/msdos/find.c
- # 2637 -rw-r----- dmake/msdos/mscdos/config.h
- # 2471 -rw-r----- dmake/msdos/mscdos/config.mk
- # 1 -rw-r----- dmake/msdos/mscdos/lib.rsp
- # 1 -rw-r----- dmake/msdos/mscdos/libswp.rsp
- # 3032 -rw-r----- dmake/msdos/mscdos/mk40.bat
- # 3194 -rw-r----- dmake/msdos/mscdos/mk40swp.bat
- # 3471 -rw-r----- dmake/msdos/mscdos/mk50.bat
- # 3647 -rw-r----- dmake/msdos/mscdos/mk50swp.bat
- # 3471 -rw-r----- dmake/msdos/mscdos/mk51.bat
- # 3647 -rw-r----- dmake/msdos/mscdos/mk51swp.bat
- # 2967 -rw-r----- dmake/msdos/mscdos/mk60.bat
- # 3126 -rw-r----- dmake/msdos/mscdos/mk60swp.bat
- # 593 -rw-r----- dmake/msdos/mscdos/obj.rsp
- # 631 -rw-r----- dmake/msdos/mscdos/objswp.rsp
- # 49 -rw-r----- dmake/msdos/mscdos/optoff.h
- # 5547 -rw-r----- dmake/msdos/mscdos/public.h
- # 3828 -rw-r----- dmake/msdos/mscdos/startup.mk
- # 1754 -rw-r----- dmake/msdos/mscdos/tempnam.c
- # 1649 -rw-r----- dmake/msdos/rmprq.c
- # 1960 -rw-r----- dmake/msdos/ruletab.c
- # 2811 -rw-r----- dmake/msdos/runargv.c
- # 12759 -rw-r----- dmake/msdos/spawn.c
- # 392 -rw-r----- dmake/msdos/startup.h
- # 417 -rw-r----- dmake/msdos/stdarg.h
- # 926 -rw-r----- dmake/msdos/switchar.c
- # 420 -rw-r----- dmake/msdos/sysintf.h
- # 2009 -rw-r----- dmake/msdos/tccdos/config.h
- # 1400 -rw-r----- dmake/msdos/tccdos/config.mk
- # 17 -rw-r----- dmake/msdos/tccdos/lib.rsp
- # 17 -rw-r----- dmake/msdos/tccdos/libswp.rsp
- # 3521 -rw-r----- dmake/msdos/tccdos/mk.bat
- # 3698 -rw-r----- dmake/msdos/tccdos/mkswp.bat
- # 635 -rw-r----- dmake/msdos/tccdos/obj.rsp
- # 673 -rw-r----- dmake/msdos/tccdos/objswp.rsp
- # 5547 -rw-r----- dmake/msdos/tccdos/public.h
- # 3801 -rw-r----- dmake/msdos/tccdos/startup.mk
- # 1724 -rw-r----- dmake/msdos/tccdos/tempnam.c
- # 767 -rw-r----- dmake/msdos/tccdos/utime.c
- # 1383 -rw-r----- dmake/msdos/tee.c
- # 1916 -rw-r----- dmake/msdos/ztcdos/config.h
- # 1990 -rw-r----- dmake/msdos/ztcdos/config.mk
- # 473 -rw-r----- dmake/msdos/ztcdos/environ.c
- # 1 -rw-r----- dmake/msdos/ztcdos/lib.rsp
- # 1 -rw-r----- dmake/msdos/ztcdos/libswp.rsp
- # 3232 -rw-r----- dmake/msdos/ztcdos/mk.bat
- # 3235 -rw-r----- dmake/msdos/ztcdos/mkswp.bat
- # 614 -rw-r----- dmake/msdos/ztcdos/obj.rsp
- # 626 -rw-r----- dmake/msdos/ztcdos/objswp.rsp
- # 5547 -rw-r----- dmake/msdos/ztcdos/public.h
- # 3867 -rw-r----- dmake/msdos/ztcdos/startup.mk
- # 1738 -rw-r----- dmake/msdos/ztcdos/tempnam.c
- # 58 -rw-r----- dmake/namemax.h
- # 1738 -rw-r----- dmake/os2/_chdir.c
- # 1555 -rw-r----- dmake/os2/config.mk
- # 24 -rw-r----- dmake/os2/dmake.bad
- # 427 -rw-r----- dmake/os2/dmake.cs
- # 121 -rw-r----- dmake/os2/dmake.def
- # 2567 -rw-r----- dmake/os2/ibm/config.h
- # 2395 -rw-r----- dmake/os2/ibm/config.mk
- # 3826 -rw-r----- dmake/os2/ibm/dmake.ini
- # 21 -rw-r----- dmake/os2/ibm/lib.rsp
- # 3413 -rw-r----- dmake/os2/ibm/mkc2.cmd
- # 576 -rw-r----- dmake/os2/ibm/obj.rsp
- # 49 -rw-r----- dmake/os2/ibm/optoff.h
- # 5541 -rw-r----- dmake/os2/ibm/public.h
- # 132 -rw-r----- dmake/os2/ibm/startup.mk
- # 1919 -rw-r----- dmake/os2/ibm/tempnam.c
- # 2570 -rw-r----- dmake/os2/mscdos/config.h
- # 2395 -rw-r----- dmake/os2/mscdos/config.mk
- # 3826 -rw-r----- dmake/os2/mscdos/dmake.ini
- # 21 -rw-r----- dmake/os2/mscdos/lib.rsp
- # 3490 -rw-r----- dmake/os2/mscdos/mk40.cmd
- # 3509 -rw-r----- dmake/os2/mscdos/mk50.cmd
- # 3509 -rw-r----- dmake/os2/mscdos/mk51.cmd
- # 3048 -rw-r----- dmake/os2/mscdos/mk60.cmd
- # 576 -rw-r----- dmake/os2/mscdos/obj.rsp
- # 49 -rw-r----- dmake/os2/mscdos/optoff.h
- # 5541 -rw-r----- dmake/os2/mscdos/public.h
- # 132 -rw-r----- dmake/os2/mscdos/startup.mk
- # 1919 -rw-r----- dmake/os2/mscdos/tempnam.c
- # 49 -rw-r----- dmake/os2/optoff.h
- # 2107 -rw-r----- dmake/os2/ruletab.c
- # 7573 -rw-r----- dmake/os2/runargv.c
- # 384 -rw-r----- dmake/os2/startup.h
- # 373 -rw-r----- dmake/os2/stdarg.h
- # 904 -rw-r----- dmake/os2/switchar.c
- # 333 -rw-r----- dmake/os2/sysintf.h
- # 5291 -rw-r----- dmake/parse.c
- # 88 -rw-r----- dmake/patchlvl.h
- # 3076 -rw-r----- dmake/path.c
- # 7063 -rw-r----- dmake/percent.c
- # 2196 -rw-r----- dmake/quit.c
- # 1957 -rw-r----- dmake/readme/apple.mac
- # 626 -rw-r----- dmake/readme/atari.tos
- # 2332 -rw-r----- dmake/readme/cover
- # 5991 -rw-r----- dmake/readme/msdos
- # 5665 -rw-r----- dmake/readme/os2
- # 4694 -rw-r----- dmake/readme/release
- # 39571 -rw-r----- dmake/rulparse.c
- # 7774 -rw-r----- dmake/stat.c
- # 5527 -rw-r----- dmake/state.c
- # 1985 -rw-r----- dmake/stdmacs.h
- # 9761 -rw-r----- dmake/struct.h
- # 15102 -rw-r----- dmake/sysintf.c
- # 13303 -rw-r----- dmake/tos/arlib.c
- # 2029 -rw-r----- dmake/tos/config.h
- # 1262 -rw-r----- dmake/tos/config.mk
- # 1890 -rw-r----- dmake/tos/dirbrk.c
- # 1480 -rw-r----- dmake/tos/make.sh
- # 5487 -rw-r----- dmake/tos/public.h
- # 2932 -rw-r----- dmake/tos/putenv.c
- # 1725 -rw-r----- dmake/tos/rmprq.c
- # 1966 -rw-r----- dmake/tos/ruletab.c
- # 2709 -rw-r----- dmake/tos/runargv.c
- # 392 -rw-r----- dmake/tos/startup.h
- # 3239 -rw-r----- dmake/tos/startup.mk
- # 441 -rw-r----- dmake/tos/sysintf.h
- # 1506 -rw-r----- dmake/tos/tempnam.c
- # 46 -rw-r----- dmake/unix/386ix/ar.h
- # 2106 -rw-r----- dmake/unix/386ix/config.h
- # 745 -rw-r----- dmake/unix/386ix/config.mk
- # 2126 -rw-r----- dmake/unix/386ix/make.sh
- # 5448 -rw-r----- dmake/unix/386ix/public.h
- # 3227 -rw-r----- dmake/unix/386ix/startup.mk
- # 373 -rw-r----- dmake/unix/386ix/stdarg.h
- # 346 -rw-r----- dmake/unix/386ix/stdlib.h
- # 133 -rw-r----- dmake/unix/386ix/time.h
- # 14476 -rw-r----- dmake/unix/arlib.c
- # 2250 -rw-r----- dmake/unix/bsd43/config.h
- # 796 -rw-r----- dmake/unix/bsd43/config.mk
- # 2489 -rw-r----- dmake/unix/bsd43/make.sh
- # 5448 -rw-r----- dmake/unix/bsd43/public.h
- # 2939 -rw-r----- dmake/unix/bsd43/putenv.c
- # 1590 -rw-r----- dmake/unix/bsd43/setvbuf.c
- # 3227 -rw-r----- dmake/unix/bsd43/startup.mk
- # 409 -rw-r----- dmake/unix/bsd43/stdarg.h
- # 346 -rw-r----- dmake/unix/bsd43/stdlib.h
- # 292 -rw-r----- dmake/unix/bsd43/string.h
- # 1506 -rw-r----- dmake/unix/bsd43/tempnam.c
- # 808 -rw-r----- dmake/unix/bsd43/utime.c
- # 521 -rw-r----- dmake/unix/bsd43/uw/config.mk
- # 2977 -rw-r----- dmake/unix/bsd43/uw/make.sh
- # 5448 -rw-r----- dmake/unix/bsd43/uw/public.h
- # 3245 -rw-r----- dmake/unix/bsd43/uw/startup.mk
- # 317 -rw-r----- dmake/unix/bsd43/vf/config.mk
- # 782 -rw-r----- dmake/unix/bsd43/vf/ctype.h
- # 3196 -rw-r----- dmake/unix/bsd43/vf/make.sh
- # 137 -rw-r----- dmake/unix/bsd43/vf/memcpy.c
- # 5448 -rw-r----- dmake/unix/bsd43/vf/public.h
- # 3227 -rw-r----- dmake/unix/bsd43/vf/startup.mk
- # 1409 -rw-r----- dmake/unix/bsd43/vf/vfprintf.c
- # 1972 -rw-r----- dmake/unix/coherent/config.h
- # 765 -rw-r----- dmake/unix/coherent/config.mk
- # 306 -rw-r----- dmake/unix/coherent/getcwd.c
- # 2405 -rw-r----- dmake/unix/coherent/make.sh
- # 5448 -rw-r----- dmake/unix/coherent/public.h
- # 3227 -rw-r----- dmake/unix/coherent/startup.mk
- # 469 -rw-r----- dmake/unix/coherent/stdarg.h
- # 346 -rw-r----- dmake/unix/coherent/stdlib.h
- # 133 -rw-r----- dmake/unix/coherent/time.h
- # 4312 -rw-r----- dmake/unix/coherent/vfprintf.c
- # 1031 -rw-r----- dmake/unix/config.mk
- # 1821 -rw-r----- dmake/unix/dirbrk.c
- # 3513 -rw-r----- dmake/unix/explode.c
- # 3643 -rw-r----- dmake/unix/rmprq.c
- # 1948 -rw-r----- dmake/unix/ruletab.c
- # 6767 -rw-r----- dmake/unix/runargv.c
- # 412 -rw-r----- dmake/unix/startup.h
- # 441 -rw-r----- dmake/unix/sysintf.h
- # 2107 -rw-r----- dmake/unix/sysvr1/config.h
- # 761 -rw-r----- dmake/unix/sysvr1/config.mk
- # 2251 -rw-r----- dmake/unix/sysvr1/make.sh
- # 5448 -rw-r----- dmake/unix/sysvr1/public.h
- # 2940 -rw-r----- dmake/unix/sysvr1/putenv.c
- # 3285 -rw-r----- dmake/unix/sysvr1/startup.mk
- # 430 -rw-r----- dmake/unix/sysvr1/stdarg.h
- # 346 -rw-r----- dmake/unix/sysvr1/stdlib.h
- # 133 -rw-r----- dmake/unix/sysvr1/time.h
- # 934 -rw-r----- dmake/unix/sysvr1/vfprintf.c
- # 2219 -rw-r----- dmake/unix/sysvr3/config.h
- # 750 -rw-r----- dmake/unix/sysvr3/config.mk
- # 2153 -rw-r----- dmake/unix/sysvr3/make.sh
- # 5448 -rw-r----- dmake/unix/sysvr3/public.h
- # 559 -rw-r----- dmake/unix/sysvr3/pwd/config.mk
- # 5834 -rw-r----- dmake/unix/sysvr3/pwd/getcwd.c
- # 2739 -rw-r----- dmake/unix/sysvr3/pwd/make.sh
- # 5448 -rw-r----- dmake/unix/sysvr3/pwd/public.h
- # 3227 -rw-r----- dmake/unix/sysvr3/pwd/startup.mk
- # 3285 -rw-r----- dmake/unix/sysvr3/startup.mk
- # 469 -rw-r----- dmake/unix/sysvr3/stdarg.h
- # 428 -rw-r----- dmake/unix/sysvr3/stdlib.h
- # 133 -rw-r----- dmake/unix/sysvr3/time.h
- # 2123 -rw-r----- dmake/unix/sysvr4/config.h
- # 750 -rw-r----- dmake/unix/sysvr4/config.mk
- # 2153 -rw-r----- dmake/unix/sysvr4/make.sh
- # 5448 -rw-r----- dmake/unix/sysvr4/public.h
- # 3285 -rw-r----- dmake/unix/sysvr4/startup.mk
- # 869 -rw-r----- dmake/unix/sysvr4/stdarg.h
- # 2213 -rw-r----- dmake/unix/xenix/config.h
- # 760 -rw-r----- dmake/unix/xenix/config.mk
- # 2386 -rw-r----- dmake/unix/xenix/make.sh
- # 5448 -rw-r----- dmake/unix/xenix/public.h
- # 623 -rw-r----- dmake/unix/xenix/pwd/config.mk
- # 5834 -rw-r----- dmake/unix/xenix/pwd/getcwd.c
- # 2957 -rw-r----- dmake/unix/xenix/pwd/make.sh
- # 5448 -rw-r----- dmake/unix/xenix/pwd/public.h
- # 3227 -rw-r----- dmake/unix/xenix/pwd/startup.mk
- # 3285 -rw-r----- dmake/unix/xenix/startup.mk
- # 469 -rw-r----- dmake/unix/xenix/stdarg.h
- # 428 -rw-r----- dmake/unix/xenix/stdlib.h
- # 133 -rw-r----- dmake/unix/xenix/time.h
- # 53 -rw-r----- dmake/version.h
- # 4831 -rw-r----- dmake/vextern.h
- # 12487 -rw-r----- dmake/LICENSE
- #
- if test -r _shar_seq_.tmp; then
- echo 'Must unpack archives in sequence!'
- echo Please unpack part `cat _shar_seq_.tmp` next
- exit 1
- fi
- # ============= dmake/_install ==============
- if test ! -d 'dmake'; then
- mkdir 'dmake'
- fi
- if test -f 'dmake/_install' -a X"$1" != X"-c"; then
- echo 'x - skipping dmake/_install (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- sed 's/^X//' << 'SHAR_EOF' > 'dmake/_install' &&
- INSTALLATION INSTRUCTIONS
- X
- This file contains the instructions required to install and create the
- appropriate version of dmake.
- X
- NOTE: If you use dmake to bootstrap a NEW DISTRIBUTED version or to remake
- X it after applying a PATCH, it may be NECESSARY to use the batch
- X script instead of dmake as a patch may incorporate changes to the
- X makefile.mk file and associated config.mk files that cannot be
- X handled by earlier versions of dmake. The use of the batch files
- X is the ONLY supported method of making a new release or update
- X version.
- X
- MAKING THE PROPER VERSION
- X
- The list of available versions of dmake has grown quite large. The best
- method to determine what versions are available for your configuration is to
- simply issue the command 'make' in the source root directory. Below is a
- partial list of the available versions to give an idea of what is supported.
- Note that this copy of the list is not maintained up to date.
- X
- X bsd43 - Generic BSD 4.3 (eg, true BSD, apollo, Sun OS4, SGI etc)
- X bsd43uw - Generic BSD 4.3 at U of Waterloo
- X bsd43vf - Generic BSD with no vfprintf in its library (use this
- X target if you are missing the vfprintf function in your
- X C library)
- X sysvr3 - Generic SysV R3 UNIX
- X sysvr1 - Generic SysV R1 UNIX
- X 386ix - 386/ix (SysV R3), not tested
- X dynix - Sequent Symmetry dynix
- X ultrix - Ultrix 3.0 system
- X mips - Any MIPS box
- X os2msc60 - OS/2 with MSC 6.0
- X tos - Atari-ST using GCC as compiler
- X tcc - DOS with tcc 2.0
- X tccswp - swapping DOS version with tcc 2.0
- X msc60 - DOS with MSC 6.0
- X msc60swp - swapping DOS version with MSC 6.0
- X
- The file 'makefile' understands these targets and runs the appropriate script
- to create the correct version.
- X
- The source code is organized as follows:
- X
- X dmake [source for all common functions]
- X |
- X |
- X ----------------------------
- X | | | |
- X unix tos os2 msdos [source for OS specific functions]
- X | | |
- X -------------------- mscdos -------------------
- X | | | | | |
- 386ix bsd43 sysvr[134] tccdos bccdos mscdos [source for OSRELEASE
- X | specific functions]
- X --------
- X | |
- X uw vf [source for OSENVIRONMENT specific functions]
- X
- X
- Each of the directories (eg. bsd43, mscdos, tccdos, and sysvr3) contain source
- that is specific to that release of the OS (and possibly C-library)
- To make the appropriate versions of dmake, simply type the command
- X
- X 'make system'
- X
- where system is one of the supplied possibilities. Note that if you are using
- an earlier version of dmake to make a new version from scratch then you must
- use the command:
- X
- X 'dmake -f makefile system'
- X
- as dmake by default first reads makefile.mk and would thus use the wrong
- makefile for bootstrapping purposes.
- X
- The bootstrapping of dmake is accomplished by running a shell script with the
- appropriate compile commands hard coded.
- X
- (NOTE: If you are using MSDOS then, you will actually be using the make.bat
- X scriptfile to make the correct version of dmake for MSDOS. If you
- X are running a SHELL other than command.com, you may have to perform
- X some extra work to invoke the batch file.
- X
- X Make sure you read the readme/msdos file before attempting to make the
- X MSDOS version, as it contains important configuration and limitation
- X information.)
- X
- The making of dmake, echoes the commands being executed, and should proceed
- relatively error free. Ignore ANY warnings produced by the compile
- They have all be verified and are spurious noise.
- X
- UNIX SYSV R3 AND GETCWD
- X
- Some versions of UNIX SysV R3 and Xenix use the popen call to capture the
- output of pwd when invoking the C library function getcwd(). These versions
- of the function cause dmake to terminate with the "lost a child" message
- due to the fact that the parent dmake process may catch the pwd and not
- recognize it as a child. For systems that have this problem use the version
- of dmake that supplies its own getcwd function. The settings are:
- X
- X OS = unix
- X OSRELEASE = sysvr3
- X OSENVIRONMENT = pwd
- X
- It is directly available through the 'makefile' by typing one of:
- X
- X make sysvr3pwd
- X make xenixpwd
- X
- both include the getcwd code but the xenixpwd target compiles for a Xenix
- system.
- X
- X
- UNIX and "limits.h"
- X
- Some compilers do not yet provide the "limits.h" file, if yours is one of
- these then simply copy the file "namemax.h" in the source root directory to
- "limits.h". Make sure the length of a file name is correctly set in
- "limits.h" as it is processed prior to "namemax.h".
- X
- X
- STARTUP FILE
- X
- dmake requires the loading of a startup file when it is invoked. The
- path for the startup file is set in the file 'startup.h' found in the
- appropriate system sub-directories. You may override the value of the
- path variable compiled-in by creating a file at the root source directory
- called startup.h and inserting into that file a definition that is like
- the definition found in the supplied startup.h files. Alternatively you
- can modify the MAKESTARTUP environment variable to point at the location
- of your startup.mk file.
- X
- X
- INSTALLATION
- X
- To install dmake you must copy the executable to where your system
- locates executables, and you must place a copy of startup.mk (found in the
- root source directory after the build is successfuly completed) into a location
- corresponding to the value of the MAKESTARTUP macro or environment variable.
- You are free to customize the contents of startup.mk.
- X
- To make dmake again, (using itself), you will have to set three environment
- variables. See the files in readme/options for their names and their legal
- values. Once set you can invoke dmake to make itself.
- X
- X
- DOCUMENTATION
- X
- All documentation for dmake appears under the man directory.
- The file dmake.tf included in this distribution contains the troff
- source for the man page. You must typeset it using the -man macros.
- If you cannot typeset it, the file dmake.p is a version that has been
- typeset for a normal dumb terminal. The file dmake.p contains control
- characters. The file dmake.nc is a version of the man page that has
- all of the control characters stripped.
- X
- X
- CREATING A NEW VERSION
- X
- To create yet another version of dmake you should follow the following steps.
- X
- The sysvr3 version as sent is the base version, all dmake versions must provide
- the equivalent of the functions defined in the sysvr3 directory, and MUST
- provide the same semantics (MSDOS archive lib searches are an exception since
- we cannot search libraries for timestamps in MSDOS, Actually the MKS version
- of dmake does this, I don't have the inclination to add this code though).
- X
- 1. Create a new directory for the version you will be making at the level
- X that is appropriate. If it is a new OS then add the dir at the top level,
- X if it is a new version of UNIX then add it below the unix directory.
- X
- 2. Copy the files from the unix and unix/sysvr3 directories to the new dir.
- X (Or from any other directory sub-tree that is more appropriate)
- X
- 3. Not all OS/OSRELEASE combinations are compatible so in order to make
- X dmake on each, the particular directory may contain C-source for functions
- X present in the SVID SysV R3 distribution which are used by dmake but are
- X not supplied by the C-library in the target system. For example the bsd43
- X directory contains source for tempnam.c since it is not provided with
- X the BSD C-library. Before writing a new version of the source file
- X check the other directories to see if one already exists.
- X
- 4. Under some systems the standard include files may be missing or incorrect.
- X eg. under BSD stdarg.h and string.h. If this is the case
- X you should create the proper .h file in the proper directory.
- X This works as expected as the compile line includes the flag -Idir
- X where dir is the configuration dir, (bsd43 for example) and any
- X standard include files will be searched for in dir before the compiler
- X looks in the normal places (if you have a sane compiler :-).
- X
- 5. Modify dmake.sh to contain the appropriate C compiler flags and link command
- X and to include any specific C files that you have had to add for this
- X version of dmake, and run the result through the shell.
- X (make the same changes to config.mk so that once you have a working copy of
- X dmake you can use it to bring itself up to date)
- X
- 6. Send me the changes :-) so that I can incorporate them into future
- X distributions.
- X
- 7. This should be all that you require to create a new version of dmake.
- X If you have any questions send e-mail to dvadura@plg.uwaterloo.ca
- SHAR_EOF
- chmod 0640 dmake/_install ||
- echo 'restore of dmake/_install failed'
- Wc_c="`wc -c < 'dmake/_install'`"
- test 8714 -eq "$Wc_c" ||
- echo 'dmake/_install: original size 8714, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= dmake/alloc.h ==============
- if test -f 'dmake/alloc.h' -a X"$1" != X"-c"; then
- echo 'x - skipping dmake/alloc.h (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- sed 's/^X//' << 'SHAR_EOF' > 'dmake/alloc.h' &&
- /* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/alloc.h,v 1.1 1992/01/24 03:26:54 dvadura Exp $
- -- SYNOPSIS -- macros for allocating memory.
- --
- -- DESCRIPTION
- -- A somewhat nicer interface to malloc and calloc.
- -- Here we standardise the calling convention with a common macro
- -- interface.
- --
- -- AUTHOR
- -- Dennis Vadura, dvadura@watdragon.uwaterloo.ca
- -- CS DEPT, University of Waterloo, Waterloo, Ont., Canada
- --
- -- COPYRIGHT
- -- Copyright (c) 1990 by Dennis Vadura. All rights reserved.
- --
- -- This program is free software; you can redistribute it and/or
- -- modify it under the terms of the GNU General Public License
- -- (version 1), as published by the Free Software Foundation, and
- -- found in the file 'LICENSE' included with this distribution.
- --
- -- This program is distributed in the hope that it will be useful,
- -- but WITHOUT ANY WARRANTY; without even the implied warrant of
- -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- -- GNU General Public License for more details.
- --
- -- You should have received a copy of the GNU General Public License
- -- along with this program; if not, write to the Free Software
- -- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- --
- -- LOG
- -- $Log: alloc.h,v $
- X * Revision 1.1 1992/01/24 03:26:54 dvadura
- X * dmake Version 3.8, Initial revision
- X *
- */
- X
- #ifndef ALLOC_h
- #define ALLOC_h
- X
- /* DO NOT CHANGE these! These are the definitions that the make source
- X * uses for allocating memory. They must be defined for make to compile
- X * properly.
- X */
- X
- /* This is the only place that we define size_t now. This should be more
- X * than enough! */
- #if __STDC__
- #else
- # if !defined(_TYPES_) && !defined(M_XENIX) && !defined(atarist) && !defined(_MPW) && !defined(_SIZE_T)
- # if defined(MSDOS) || defined(__MSDOS__)
- # undef size_t
- X typedef unsigned size_t;
- # else
- X typedef long size_t;
- # endif
- # endif
- #endif
- X
- #define usizeof(t) (size_t)sizeof(t)
- X
- #define FREE(p) free((char*)(p))
- #define MALLOC(n, t) (t*) malloc((unsigned int)(n)*usizeof(t))
- #define CALLOC(n, t) (t*) calloc((unsigned int)(n), usizeof(t))
- X
- #define TALLOC(p, n, t) if ((p = CALLOC(n, t)) == (t*)0) {No_ram();}
- X
- #endif
- X
- SHAR_EOF
- chmod 0640 dmake/alloc.h ||
- echo 'restore of dmake/alloc.h failed'
- Wc_c="`wc -c < 'dmake/alloc.h'`"
- test 2297 -eq "$Wc_c" ||
- echo 'dmake/alloc.h: original size 2297, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= dmake/basename.c ==============
- if test -f 'dmake/basename.c' -a X"$1" != X"-c"; then
- echo 'x - skipping dmake/basename.c (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- sed 's/^X//' << 'SHAR_EOF' > 'dmake/basename.c' &&
- /* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/basename.c,v 1.1 1992/01/24 03:26:56 dvadura Exp $
- -- SYNOPSIS -- return pointer to last pathname component
- --
- -- DESCRIPTION
- -- take a file name like /fred/foo/hoe/mary.k, and return the 'mary.k'
- -- portion
- --
- -- AUTHOR
- -- Dennis Vadura, dvadura@watdragon.uwaterloo.ca
- -- CS DEPT, University of Waterloo, Waterloo, Ont., Canada
- --
- -- COPYRIGHT
- -- Copyright (c) 1990 by Dennis Vadura. All rights reserved.
- --
- -- This program is free software; you can redistribute it and/or
- -- modify it under the terms of the GNU General Public License
- -- (version 1), as published by the Free Software Foundation, and
- -- found in the file 'LICENSE' included with this distribution.
- --
- -- This program is distributed in the hope that it will be useful,
- -- but WITHOUT ANY WARRANTY; without even the implied warrant of
- -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- -- GNU General Public License for more details.
- --
- -- You should have received a copy of the GNU General Public License
- -- along with this program; if not, write to the Free Software
- -- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- --
- -- LOG
- -- $Log: basename.c,v $
- X * Revision 1.1 1992/01/24 03:26:56 dvadura
- X * dmake Version 3.8, Initial revision
- X *
- */
- X
- #include "extern.h"
- X
- PUBLIC char*
- basename( path )
- char *path;
- {
- X char *p;
- X char *q;
- X
- X if( *(q = path) ) {
- X for(; *(p=_strpbrk(q, DirBrkStr)) != '\0'; q = p+1 );
- X if( !*q ) {
- X for( p=q-1; p != path; --p )
- X if( strchr( DirBrkStr, *p ) == NIL(char) ) return( p+1 );
- X return( strchr(DirBrkStr, *p)?path:(p+1) );
- X }
- X path = q;
- X }
- X return( path );
- }
- SHAR_EOF
- chmod 0640 dmake/basename.c ||
- echo 'restore of dmake/basename.c failed'
- Wc_c="`wc -c < 'dmake/basename.c'`"
- test 1762 -eq "$Wc_c" ||
- echo 'dmake/basename.c: original size 1762, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= dmake/dag.c ==============
- if test -f 'dmake/dag.c' -a X"$1" != X"-c"; then
- echo 'x - skipping dmake/dag.c (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- sed 's/^X//' << 'SHAR_EOF' > 'dmake/dag.c' &&
- /* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/dag.c,v 1.1 1992/01/24 03:26:55 dvadura Exp $
- -- SYNOPSIS -- Routines to construct the internal dag.
- --
- -- DESCRIPTION
- -- This file contains all the routines that are responsible for
- -- defining and manipulating all objects used by the make facility.
- --
- -- AUTHOR
- -- Dennis Vadura, dvadura@watdragon.uwaterloo.ca
- -- CS DEPT, University of Waterloo, Waterloo, Ont., Canada
- --
- -- COPYRIGHT
- -- Copyright (c) 1990 by Dennis Vadura. All rights reserved.
- --
- -- This program is free software; you can redistribute it and/or
- -- modify it under the terms of the GNU General Public License
- -- (version 1), as published by the Free Software Foundation, and
- -- found in the file 'LICENSE' included with this distribution.
- --
- -- This program is distributed in the hope that it will be useful,
- -- but WITHOUT ANY WARRANTY; without even the implied warrant of
- -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- -- GNU General Public License for more details.
- --
- -- You should have received a copy of the GNU General Public License
- -- along with this program; if not, write to the Free Software
- -- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- --
- -- LOG
- -- $Log: dag.c,v $
- X * Revision 1.1 1992/01/24 03:26:55 dvadura
- X * dmake Version 3.8, Initial revision
- X *
- */
- X
- #include "extern.h"
- X
- X
- PUBLIC HASHPTR
- Get_name( name, tab, define )/*
- ===============================
- X Look to see if the name is defined, if it is then return
- X a pointer to its node, if not return NIL(HASH).
- X If define is TRUE and the name is not found it will be added. */
- X
- char *name; /* name we are looking for */
- HASHPTR *tab; /* the hash table to look in */
- int define; /* TRUE => add to table */
- {
- X register HASHPTR hp;
- X register char *p;
- X uint16 hv;
- X uint32 hash_key;
- X
- X DB_ENTER( "Get_name" );
- X DB_PRINT( "name", ("Looking for %s", name) );
- X
- X hp = Search_table( tab, name, &hv, &hash_key );
- X
- X if( hp == NIL(HASH) && define ) {
- X /* Check to make sure that CELL name contains only printable chars */
- X for( p=name; *p; p++ )
- X if( !isprint(*p) && !iswhite(*p) && *p != '\n' )
- X Fatal( "Name contains non-printable character [0x%02x]", *p );
- X
- X TALLOC( hp, 1, HASH ); /* allocate a cell and add it in */
- X
- X hp->ht_name = _strdup( name );
- X hp->ht_hash = hash_key;
- X hp->ht_next = tab[ hv ];
- X tab[ hv ] = hp;
- X
- X DB_PRINT( "name", ("Adding %s", name) );
- X }
- X
- X DB_PRINT( "name",("Returning: [%s,%lu]",
- X (hp == NIL(HASH)) ? "":hp->ht_name, hv) );
- X DB_RETURN( hp );
- }
- X
- X
- PUBLIC HASHPTR
- Search_table( tab, name, phv, phkey )
- HASHPTR *tab;
- char *name;
- uint16 *phv;
- uint32 *phkey;
- {
- X HASHPTR hp;
- X
- X *phv = Hash( name, phkey );
- X
- X for( hp = tab[ *phv ]; hp != NIL(HASH); hp = hp->ht_next )
- X if( hp->ht_hash == *phkey
- X && !strcmp(hp->ht_name, name) )
- X break;
- X
- X return( hp );
- }
- X
- X
- PUBLIC HASHPTR
- Def_macro( name, value, flags )/*
- =================================
- X This routine is used to define a macro, and it's value.
- X The flags indicates if it is a permanent macro or if it's value
- X can be redefined. A flags of M_PRECIOUS means it is a precious
- X macro and cannot be further redefined. If the flags flag also
- X contains the M_MULTI bit it means that the macro can be redefined
- X multiple times and no warning of the redefinitions should be issued.
- X Once a macro's VAR flags are set they are preserved through all future
- X macro definitions.
- X
- X Macro definitions that have one of the variable bits set are treated
- X specially. In each case the hash table entry var field points at the
- X global variable that can be set by assigning to the macro.
- X
- X bit valued global vars must be computed when the macro value is changed.
- X char valued global vars must have the first char of ht_value copied to
- X them. string valued global vars have the same value as ht_value and should
- X just have the new value of ht_value copied to them. */
- X
- char *name; /* macro name to define */
- char *value; /* macro value to set */
- int flags; /* initial ht_flags */
- {
- X register HASHPTR hp;
- X register char *p, *q;
- X
- X DB_ENTER( "Def_macro" );
- X DB_PRINT( "mac", ("Defining macro %s = %s, %x", name, value, flags) );
- X
- X /* check to see if name is in the table, if so then just overwrite
- X the previous definition. Otherwise allocate a new node, and
- X stuff it in the hash table, at the front of any linked list */
- X
- X if( Readenv ) flags |= M_LITERAL|M_EXPANDED;
- X
- X hp = Get_name( name, Macs, TRUE );
- X
- X if( (hp->ht_flag & M_PRECIOUS) && !(flags & M_FORCE) ) {
- X Warning( "Macro `%s' cannot be redefined", name );
- X DB_RETURN( hp );
- X }
- X
- X /* Make sure we don't export macros whose names contain legal macro
- X * assignment operators, since we can't do proper quoting in the
- X * environment. */
- X if( *_strpbrk(name, "*+:=") != '\0' ) flags |= M_NOEXPORT;
- X
- X if( hp->ht_value != NIL(char) ) FREE( hp->ht_value );
- X
- X if( (hp->ht_flag & M_USED) && !((flags | hp->ht_flag) & M_MULTI) )
- X Warning( "Macro `%s' redefined after use", name );
- X
- X if( (value != NIL(char)) && (*value) ) {
- X /* strip out any \<nl> combinations where \ is the current CONTINUATION
- X * char */
- X
- X for( p = value; (p = strchr(p, CONTINUATION_CHAR)) != NIL(char); )
- X if( p[1] == '\n' )
- X strcpy( p, p+2 );
- X else
- X p++;
- X
- X if( !(flags & M_LITERAL) ) {
- X p = _strdup( _strspn( value, " \t" ) ); /* strip white space before */
- X /* ... and after value */
- X if( *p ) {
- X for(q=p+strlen(p)-1; ((*q == ' ')||(*q == '\t')); q--);
- X *++q = '\0';
- X }
- X flags &= ~M_LITERAL;
- X }
- X else
- X p = _strdup( value ); /* take string literally */
- X
- X if( !*p ) { /* check if result is "" */
- X FREE( p );
- X p = NIL(char);
- X flags |= M_EXPANDED;
- X }
- X else if( *_strpbrk( p, "${}" ) == '\0' )
- X flags |= M_EXPANDED;
- X
- X hp->ht_value = p;
- X }
- X else
- X hp->ht_value = NIL(char);
- X
- X /* Assign the hash table flag less the M_MULTI flag, it is used only
- X * to silence the warning. But carry it over if it was previously
- X * defined in ht_flag, as this is a permanent M_MULTI variable. */
- X
- X hp->ht_flag = (flags & ~(M_MULTI|M_FORCE)) |
- X (hp->ht_flag & (M_VAR_MASK | M_MULTI));
- X
- X /* Check for macro variables and make the necessary adjustment in the
- X * corresponding global variables */
- X
- X if( hp->ht_flag & M_VAR_MASK )
- X if( !(flags & M_EXPANDED) )
- X Error( "Macro variable '%s' must be assigned with :=", name );
- X else switch( hp->ht_flag & M_VAR_MASK ) /* only one var type per var */
- X {
- X case M_VAR_STRING:
- X *hp->MV_SVAR = hp->ht_value;
- X break;
- X
- X case M_VAR_CHAR:
- X *hp->MV_CVAR = (hp->ht_value == NIL(char)) ? '\0':*hp->ht_value;
- X break;
- X
- X case M_VAR_INT: {
- X int tvalue;
- X if( hp->MV_IVAR == NIL(int) ) break; /* first time */
- X
- X tvalue = atoi(hp->ht_value);
- X if( hp->MV_IVAR == &Buffer_size ) {
- X /* If Buffer_size is modified then make sure you change the
- X * size of the real buffer as well. */
- X tvalue = (tvalue < (BUFSIZ-2)) ? BUFSIZ : tvalue+2;
- X if( Buffer_size == tvalue ) break;
- X if( Buffer ) FREE(Buffer);
- X if((Buffer=MALLOC(tvalue, char)) == NIL(char)) No_ram();
- X *Buffer = '\0';
- X }
- X *hp->MV_IVAR = tvalue;
- X
- X if( hp->MV_IVAR == &Max_proc || hp->MV_IVAR == &Max_proclmt ) {
- X if( tvalue < 1 )
- X Fatal( "Process limit value must be > 1" );
- X
- X if( Max_proc > Max_proclmt )
- X Fatal( "Specified # of processes exceeds limit of [%d]",
- X Max_proclmt );
- X }
- X } break;
- X
- X case M_VAR_BIT:
- X /* Bit variables are set to 1 if ht_value is not NULL and 0
- X * otherwise */
- X
- X if( hp->ht_value == NIL(char) )
- X *hp->MV_BVAR &= ~hp->MV_MASK;
- X else
- X *hp->MV_BVAR |= hp->MV_MASK;
- X break;
- X }
- X
- X DB_RETURN( hp );
- }
- X
- X
- X
- PUBLIC CELLPTR
- Def_cell( name )/*
- ==================
- X Take a string passed in and define it as a cell
- X If the cell exists then return a pointer to it. */
- char *name;
- {
- X register HASHPTR hp;
- X register CELLPTR cp;
- X register CELLPTR lib;
- X char *member;
- X char *end;
- X
- X DB_ENTER( "Def_cell" );
- X
- X /* Check to see if the cell is a member of the form lib(member) or
- X * lib((symbol)) and handle the cases appropriately.
- X * What we do is we look at the target, if it is of the above two
- X * forms we get the lib, and add the member/symbol to the list of
- X * prerequisites for the library. If this is a symbol name def'n
- X * we additionally add the attribute A_SYMBOL, so that stat can
- X * try to do the right thing. */
- X
- X if( ((member = strchr(name, '(')) != NIL(char)) &&
- X ((end = strrchr(member, ')')) != NIL(char)) &&
- X (member > name) && (member[-1] != '$') &&
- X (end > member+1) && (end[1] == '\0') )
- X {
- X *member++ = *end = '\0';
- X
- X if( (*member == '(') && (member[strlen(member)-1] == ')') ) {
- X member[ strlen(member)-1 ] = '\0';
- X cp = Def_cell( member+1 );
- X cp->ce_attr |= A_SYMBOL;
- X }
- X else
- X cp = Def_cell( member );
- X
- X lib = Def_cell( name );
- X
- X Add_prerequisite( lib, cp, FALSE, FALSE );
- X lib->ce_attr |= A_LIBRARY | A_COMPOSITE;
- X
- X if( !Def_targets ) cp = lib;
- X }
- X else {
- X hp = Get_name( name, Defs, TRUE );/* get the name from hash table */
- X
- X if( hp->CP_OWNR == NIL(CELL) ) /* was it previously defined */
- X { /* NO, so define a new cell */
- X DB_PRINT( "cell", ("Defining cell [%s]", name) );
- X
- X TALLOC( cp, 1, CELL );
- X hp->CP_OWNR = cp;
- X cp->ce_name = hp;
- X cp->ce_fname = hp->ht_name;
- X }
- X else /* YES, so return the old cell */
- X {
- X DB_PRINT( "cell", ("Getting cell [%s]", hp->ht_name) );
- X cp = hp->CP_OWNR;
- X }
- X }
- X
- X DB_RETURN( cp );
- }
- X
- X
- X
- X
- PUBLIC LINKPTR
- Add_prerequisite( cell, prq, head, force )/*
- ============================================
- X Add a dependency node to the dag. It adds it to the prerequisites,
- X if any, of the cell and makes certain they are in linear order.
- X If head == 1, then add to head of the prerequisite list, else
- X add to tail. */
- CELLPTR cell;
- CELLPTR prq;
- int head;
- int force;
- {
- X register LINKPTR lp, tlp;
- X
- X DB_ENTER( "Add_prerequisite" );
- X DB_PRINT( "cell", ("Defining prerequisite %s", prq->CE_NAME) );
- X
- X if( (prq->ce_flag & (F_MAGIC | F_PERCENT)) && !force )
- X Fatal( "Special target [%s] cannot be a prerequisite",
- X prq->CE_NAME );
- X
- X if( cell->ce_prq == NIL(LINK) ) { /* it's the first one */
- X TALLOC( lp, 1, LINK );
- X lp->cl_prq = prq;
- X cell->ce_prq = lp;
- SHAR_EOF
- true || echo 'restore of dmake/dag.c failed'
- fi
- echo 'End of part 1, continue with part 2'
- echo 2 > _shar_seq_.tmp
- exit 0
- exit 0 # Just in case...
-